package com.niiwoo.civet.trade.service.koala;

import com.niiwoo.civet.trade.dto.request.kaola.KaoLaLiCaiRepayRequestDTO;
import com.niiwoo.civet.trade.dto.request.myloan.MyProjectRequestDTO;
import com.niiwoo.civet.trade.dto.response.kaola.KaoLaLiCaiFullRepayResponseDTO;
import com.niiwoo.civet.trade.dto.response.kaola.KaoLaLiCaiImmediateRepayResponseDTO;
import com.niiwoo.civet.trade.dto.response.kaola.KaoLaLiCaiRepayResponseDTO;

/**
 * @author lichuanzhi
 * @date 2018/01/11
 */
public interface KaoLaLiCaiDubboService {

    /**
     * 考拉理财还款接口
     *
     * @param dto 还款请求DTO
     * @return 还款响应DTO
     */
    KaoLaLiCaiRepayResponseDTO repayment(KaoLaLiCaiRepayRequestDTO dto);

    /**
     * 考拉理财立即还款弹窗接口
     *
     * @param dto 还款请求DTO
     * @return 还款响应DTO
     */
    KaoLaLiCaiImmediateRepayResponseDTO immediateRepay(MyProjectRequestDTO dto);

    /**
     * 考拉理财全额还款弹窗接口
     *
     * @param dto 还款请求DTO
     * @return 还款响应DTO
     */
    KaoLaLiCaiFullRepayResponseDTO fullRepay(MyProjectRequestDTO dto);

    /**
     * 换卡请求
     *
     * @param userId 需换卡的用户id
     * @return 银行卡号后四位
     */
    boolean bankCardChange(String userId);

    /**
     * 根据用户id获取考拉标的,考拉还款中的标的，每一个用户只会存在一个
     *
     * @param userId 当前登录用户id
     * @return 考拉标的信息
     */
    KaoLaLiCaiImmediateRepayResponseDTO getRepayingProjectByUserId(String userId);

    /**
     * 定时代扣
     */
    default void scheduleWithhold() {

    }
}
